package com.user.bean;


/*Jindaishi实体类，用于对jindaishi相关数据进行封装*/
public class Jindaishi implements Comparable<Jindaishi>{

//	私有id属性
	private Integer id;

//	私有topic属性
	private String topic;

//	私有topic_ans属性
	private String topic_ans;

//	私有answer属性
	private String answer;

//	私有grad属性
	private Integer grad;

//	私有multiple属性
	private Boolean multiple;

//	无参构造器
	public Jindaishi() {
		
	}
//	包含所有属性的有参构造器
	public Jindaishi(Integer id,String topic,String topic_ans,String answer,Integer grad,Boolean multiple) {
//		初始化id属性
		this.id=id;
//		初始化topic属性
		this.topic=topic;
//		初始化topic_ans属性
		this.topic_ans=topic_ans;
//		初始化answer属性
		this.answer=answer;
//		初始化grad属性
		this.grad=grad;
//		初始化multiple属性
		this.multiple=multiple;
	}
//	不包含主键id属性的有参构造器
	public Jindaishi(String topic,String topic_ans,String answer,Integer grad,Boolean multiple) {
//		初始化topic属性
		this.topic=topic;
//		初始化topic_ans属性
		this.topic_ans=topic_ans;
//		初始化answer属性
		this.answer=answer;
//		初始化grad属性
		this.grad=grad;
//		初始化multiple属性
		this.multiple=multiple;
	}
//	设置id属性
	public Jindaishi setId(Integer id){
		this.id=id;
		return this;
	}
//	获取id属性
	public Integer getId(){
		return this.id;
	}
//	设置topic属性
	public Jindaishi setTopic(String topic){
		this.topic=topic;
		return this;
	}
//	获取topic属性
	public String getTopic(){
		return this.topic;
	}
//	设置topic_ans属性
	public Jindaishi setTopic_ans(String topic_ans){
		this.topic_ans=topic_ans;
		return this;
	}
//	获取topic_ans属性
	public String getTopic_ans(){
		return this.topic_ans;
	}
//	设置answer属性
	public Jindaishi setAnswer(String answer){
		this.answer=answer;
		return this;
	}
//	获取answer属性
	public String getAnswer(){
		return this.answer;
	}
//	设置grad属性
	public Jindaishi setGrad(Integer grad){
		this.grad=grad;
		return this;
	}
//	获取grad属性
	public Integer getGrad(){
		return this.grad;
	}
//	设置multiple属性
	public Jindaishi setMultiple(Boolean multiple){
		this.multiple=multiple;
		return this;
	}
//	获取multiple属性
	public Boolean getMultiple(){
		return this.multiple;
	}
//	重写父类的toString方法
	public String toString() {
		return "Jindaishi [id="+getId()+", topic="+getTopic()+", topic_ans="+getTopic_ans()+", answer="+getAnswer()+", grad="+getGrad()+", multiple="+getMultiple()+"]";
	}
//	重写父类的equals方法
	public boolean equals(Object obj) {
//	若传入的obj对象不属于Jindaishi类型
		if (!(obj instanceof Jindaishi)) {
//		抛出类型转化异常
			throw new ClassCastException("obj无法强转成Jindaishi类型");
		}
//	把obj对象强转成Jindaishi类型
		Jindaishi jindaishi=(Jindaishi) obj;
//		返回当前对象的各个属性与jindaishi对象的各个属性相比较的结果
		return id.equals(jindaishi.id)&&topic.equals(jindaishi.topic)&&topic_ans.equals(jindaishi.topic_ans)&&answer.equals(jindaishi.answer)&&grad.equals(jindaishi.grad)&&multiple.equals(jindaishi.multiple);
	}
//	重写父类的hashCode方法
	public int hashCode() {
//		返回当前对象的各个属性的hashCode方法之和
		return id.hashCode()+topic.hashCode()+topic_ans.hashCode()+answer.hashCode()+grad.hashCode()+multiple.hashCode();
	}
//	实现Comparable接口中的方法，让当前类的对象具备可比性
	public int compareTo(Jindaishi jindaishi) {
//		比较当前对象与jindaishi对象的id属性
		int compareTo = id.compareTo(jindaishi.id);
//			若id属性相等
		if (compareTo==0) {
//			比较当前对象与jindaishi对象的topic属性
			compareTo=topic.compareTo(jindaishi.topic);
//			若topic属性相等
			if (compareTo==0) {
//				比较当前对象与jindaishi对象的topic_ans属性
				compareTo=topic_ans.compareTo(jindaishi.topic_ans);
//				若topic_ans属性相等
				if (compareTo==0) {
//					比较当前对象与jindaishi对象的answer属性
					compareTo=answer.compareTo(jindaishi.answer);
//					若answer属性相等
					if (compareTo==0) {
//						比较当前对象与jindaishi对象的grad属性
						compareTo=grad.compareTo(jindaishi.grad);
//						若grad属性相等
						if (compareTo==0) {
//							比较当前对象与jindaishi对象的multiple属性
							compareTo=multiple.compareTo(jindaishi.multiple);
						}
					}
				}
			}
		}
//		返回比较结果
		return compareTo;
	}
}